// const isProduction = process.env.NODE_ENV === 'production'
const Timestamp = new Date().getTime();
module.exports = {
  //路径前缀
  publicPath: "/",
  lintOnSave: true,
  productionSourceMap: false,
  chainWebpack: (config) => {
    //忽略的打包文件
    config.externals({
      'vue': 'Vue',
      'vue-router': 'VueRouter',
      'vuex': 'Vuex',
      'axios': 'axios',
      'element-ui': 'ELEMENT',
    });
    config.resolve.symlinks(true);
    const entry = config.entry('app');
    entry.add('babel-polyfill').end();
    entry.add('classlist-polyfill').end();
    // entry.add('@/mock').end();
  },
  configureWebpack: { // webpack 配置
        output: { // 输出重构  打包编译后的 文件名称  【模块名称.版本号.时间戳】
          filename: `[name].${process.env.VUE_APP_Version}.${Timestamp}.js`,
          chunkFilename: `[name].${process.env.VUE_APP_Version}.${Timestamp}.js`
        },
    },
  css: {
    loaderOptions: {
      sass: {
        data: `@import "@/styles/variables.scss";`
      },
      postcss: {
        plugins: [
          require('postcss-pxtorem')({
            rootValue: 14, // 换算的基数
            // selectorBlackList: ['weui', 'mu'], // 忽略转换正则匹配项
            propList: ['*'],
          }),
        ]
      },
    }
    //   // extract: { ignoreOrder: isProduction } //生产环境可放开注释，开发环境开启和热更新不兼容

  },

  //开发模式反向代理配置，生产模式请使用Nginx部署并配置反向代理
  devServer: {

    port: 18080,
    proxy: {
      '/api': {
        target: 'http://127.0.0.1',
        //远程演示服务地址,可用于直接启动项目
        ws: true,
        pathRewrite: {
          '^/api': '/'
        }
      },
    }
  }
};
